package model

import (
	"time"
)

const (
	TypeImagine            = 10
	TypeChange             = 20
	TaskStatusWaitResponse = "WAIT_RESPONSE"
)

// MidjourneyImageTask 图片任务表
type MidjourneyImageTask struct {
	ID           uint      `gorm:"column:id;primary_key;AUTO_INCREMENT"`
	TaskID       string    `gorm:"column:task_id;NOT NULL"`                 // 任务id
	Type         int       `gorm:"column:type;default:0;NOT NULL"`          // 类型 10 文字生成图片 20 绘图变化(切割图片) 30 图片生成文字 40 图片混合
	TaskStatus   string    `gorm:"column:task_status;NOT NULL"`             // 任务状态 WAIT_RESPONSE(等待响应)  IN_PROGRESS(执行中)、FAILURE(失败)、SUCCESS(成功)
	FailReason   string    `gorm:"column:fail_reason;NOT NULL"`             // 失败原因
	Idempotent   string    `gorm:"column:idempotent;NOT NULL"`              // 幂等id 唯一标识
	TaskProgress int       `gorm:"column:task_progress;default:0;NOT NULL"` // 进度(百分比)
	Params       string    `gorm:"column:params"`                           // 请求参数 [1.图片地址 2.文案 3.多个图片地址]
	ImageUrl     string    `gorm:"column:image_url;NOT NULL"`               // 生成的图片地址
	GenerateText string    `gorm:"column:generate_text"`                    // 生成的文案
	CreatedAt    time.Time `gorm:"column:created_at;NOT NULL"`              // 创建时间
	UpdatedAt    time.Time `gorm:"column:updated_at;NOT NULL"`              // 修改时间
}

func (m *MidjourneyImageTask) TableName() string {
	return "midjourney_image_task"
}
